Subject: Additional Return Control values

From: "John E. Fetvedt (919-254-4366)" <[email-masked]>
Date: Mon, 6 Mar 95 14:56:44 EST

CIW General,

     Attached are the specific editing instructions for the Additional
Return Control values work item.  Please review them for completeness
and let me know if you have any comments.

     Thanks for your prompt attention.

John Fetvedt

----------------------------- Referenced Note ---------------------------

Additional Return_Control Values
================================

Requirements
------------

Add new values to the Return_Control conversation characteristic for:

   *  CM_WHEN_CONWINNER_ALLOCATED - specifies to allocate a
      contention-winner session for the conversation before returning
      control to the program.

   *  CM_WHEN_SESSION_FREE - specifies to allocate a session for the
      conversation if a session is available.  If no session is
      available, the local program is willing to wait for session
      activation.  If a session cannot be activated and there are no
      outstanding session activation requests to satisfy this Allocate,
      then control returns to the program with a return code of
      CM_ALLOCATE_FAILURE_RETRY.

Status
------

   *  AD/AP status granted at 10/94 CIW.
   *  CP status to be requested at 4/95/CIW.

Specific Changes
----------------

1. section 4.7.2, Allocate (CMALLC), Parameters:

   Add CM_WHEN_CONWINNER_ALLOCATED and CM_WHEN_SESSION_FREE to the
   return_control values that can receive CM_ALLOCATE_FAILURE_NO_RETRY
   and CM_ALLOCATE_FAILURE_RETRY.

2. section 4.69.2, Set_Return_Control (CMSRC), Parameters:

   a) Add descriptions for CM_WHEN_CONWINNER_ALLOCATED and
      CM_WHEN_SESSION_FREE to the return_control parameter:

      "CM_WHEN_CONWINNER_ALLOCATED - specifies to allocate a
       contention-winner session for the conversation before returning
       control to the program."

      "CM_WHEN_SESSION_FREE - specifies to allocate a session for the
       conversation if a session is available.  If no session is
       available, the local program is willing to wait for session
       activation.  If a session cannot be activated and there are no
       outstanding session activation requests to satisfy this Allocate,
       then control returns to the program with a return code of
       CM_ALLOCATE_FAILURE_RETRY."

   b) Add a table showing whether a con-winner is acceptable, a con-loser
      is acceptable, and if a wait is expected, for each return_control
      value.

      (attached)

3. appendix A.1, return_control values:

   Add values for CM_WHEN_CONWINNER_ALLOCATED and CM_WHEN_SESSION_FREE.

   "CM_WHEN_CONWINNER_ALLOCATED          2"
   "CM_WHEN_SESSION_FREE                 3"

4. appendix E:

   Add values for CM_WHEN_CONWINNER_ALLOCATED and CM_WHEN_SESSION_FREE
   to each of the pseudonym files.:

   a) Application Generator:

      "MOVE 2 TO CM_WHEN_CONWINNER_ALLOCATED"
      "MOVE 3 TO CM_WHEN_SESSION_FREE"

      ":recditem  name   = CM_WHEN_CONWINNER_ALLOCATED
                  level  = 10          occurs   = 00001
                  scope  = GLOBAL"
      ":recditem  name   = CM_WHEN_SESSION_FREE
                  level  = 10          occurs   = 00001
                  scope  = GLOBAL"

      ":item      name   = CM_WHEN_CONWINNER_ALLOCATED
                  date   = '03/03/95'  time     = '12:00:00'  type = BIN
                  bytes  = 00004       decimals = 00      evensql  = N
       :eitem."
      ":item      name   = CM_WHEN_SESSION_FREE
                  date   = '03/03/95'  time     = '12:00:00'  type = BIN
                  bytes  = 00004       decimals = 00      evensql  = N
       :eitem."

   b) C

      "#define CM_WHEN_CONWINNER_ALLOCATED     (CM_RETURN_CONTROL) 2"
      "#define CM_WHEN_SESSION_FREE            (CM_RETURN_CONTROL) 3"

   c) COBOL

      "    88  CM_WHEN_CONWINNER_ALLOCATED          VALUE 2."
      "    88  CM_WHEN_SESSION_FREE                 VALUE 3."

   d) FORTRAN

      "INTEGER CM_WHEN_CONWINNER_ALLOCATED          /2/"
      "INTEGER CM_WHEN_SESSION_FREE                 /3/"

      "INTEGER CONALL                               /2/"
      "INTEGER SESFRE                               /3/"

   e) PL/I

      "cm_when_conwinner_allocated          INITIAL(2)"
      "cm_when_session_free                 INITIAL(3)"

   f) REXX

      "CM_WHEN_CONWINNER_ALLOCATED          = 2"
      "CM_WHEN_SESSION_FREE                 = 3"

   g) RPG

      "I*   CM_WHEN_CONWINNER_ALLOCATED     -- VALUE 2   (CONALL)"
      "I*   CM_WHEN_SESSION_FREE            -- VALUE 3   (SESFRE)"

      "               2                     C        CONALL"
      "               3                     C        SESFRE"

5. appendix F:

   Add new values into Table 81 under return control:

      "cm_when_conwinner_allocated          conversations"
      "cm_when_session_free                 conversations"

-------------------------  end of proposal  ----------------------------